---
id: unit1
title: 第一章 操作系统概论
---

作为开篇第一章，往往比较简单，先对操作系统进行介绍<br/>
知识点主要有以下几个模块:  
**1.操作系统的概念**<br/>
**2.操作系统的体系结构**<br/>
**3.操作系统的发展和分类**<br/>
**4.操作系统的设计**<br/>

带着以下问题阅读  
1、操作系统的特征是什么？  
2、操作系统的功能？  
3、操作系统的体系结构？  
4、unix 系统和 Linux 系统和 Android 的系统结构是？  
5、操作系统的分类？  
6、分时操作系统的特点是？  
7、操作系统的设计目标？

- ## 操作系统的概念

我们这门课讨论的操作系统，其实是属于计算机系统下面的一种，先看一下计算机系统的定义：<br />
计算机系统是一种可以按用户的要求接收和存储信息自动进行数据处理，并输出结果信息的系统【了解】。  
看下面这张图， 计算机系统分为机械式和电子式。电子式分为了模拟式和数字式。我们这里指的是数字式的操作系统。

操作系统是计算机系统中的一个系统软件，它是这样一些程序模块的集合： 它们能有效地组织和管理计算机系统中的硬件及软件资源，合理地组织计算机工作流程，控制程序的执行，并向用户提供各种服务功能，使得用户能够灵活、方便、有效地使用计算机，
并使整个计算机系统能高效地运行。

**操作系统的特征**  
作为一种系统软件，操作系统有着与其他软件相比所不同的特征：<br/>
（1）并发性，是指在计算机系统中同时存在若干个运行着的程序，从宏观上看，这些程
序在同时向前推进。计算机的并发性体现在两个方面：用户程序与用户程序之间并发执
行；用户程序与操作系统程序之间并发执行。<br/>
（2）共享性，是指操作系统程序与多个用户程序共用系统中的各种资源。这种共享性
是在操作系统控制下实现的。资源的共享性主要针对计算机系统中的如下几项重要资
源：中央处理器、内存储器、外存储器、外部设备。在计算机系统中，对资源的共享一般有
两种形式：互斥共享和同时共享。<br/>
（3）随机性:  
 &emsp;&emsp; &emsp;操作系统不能对所运行的程序的行为及硬件设备的情况作出任何实现的假定，显然一个设备可能在任何时候相处以及发出中断请求，用户提交的运行的程序，要做什么事情也无法实现指导，像这种情况操作系统正处于的状态是无法确定的

<br />

**研究操作系统的观点（角度）**：  
（1）软件的观点。  
 从软件的观点来看，操作系统是一种大型软件系统，它是多种功能程序的集合  
（2）资源管理的观点。  
 资源管理的观点就是说我们的操作系统是用来管理分配，这些像中央处理器，存储器，一些外部设备等等资源的  
（3）进程的观点。  
（4）虚机器的观点。  
 虚拟机器的观点，就是说，在操作系统下我们不需要直接对硬件机器(称为裸机)进行直接操作，而是通过操作系统对他进行操作，我们把这种计算机系统称为虚拟计算机  
（5）服务提供者观点。

<br />
**操作系统的功能：** （1）进程管理（处理器管理）。进程管理主要包括进程控制、进程同步、进程间通信和
调度等几方面的内容。 （2）存储管理。具体包括内存的分配与回收、存储保护和内存扩充三项存储管理
功能。 （3）文件管理。文件管理的任务是有效地支持文件的存储、检索和修改等操作，解决
文件的共享、保密和保护问题，以使用户方便、安全地访问文件。 （4）设备管理。 （5）用户接口。
除此之外，操作系统还要具备中断处理、错误处理等功能。操作系统的各功能之间并非是完全独立的，它们之间存在着相互依赖的关系。

## 操作系统的体系结构

（1）Windows 操作系统的体系结构。Windows 体系结构是分层的模块系统，主要层
次有硬件抽象层 HAL、内核、执行体和大量的子系统集合。  
（2）UNIX 操作系统的体系结构。主要包括硬件、内核、系统调用接口、应用程序。  
（3）Linux 操作系统的体系结构。Linux 系统有四个主要部分，即内核、Shell、文件系
统和用户应用程序。内核、Shell 和文件系统形成了基本的操作系统结构，它们使得用户
可以运行程序、管理文件并使用系统。  
（4）Android 操作系统的体系结构。Android 操作系统分为四层，从高层到低层分别
是应用程序层、应用框架层、系统运行库层和 Linux 内核层。

## 操作系统分类

**操作系统的发展**  
操作系统的发展过程包括：手工操作 -> 监控程序（早期批处理）-> 多道批处理 -> 分时与实时系统 -> UNIX 通用操作系统 -> 个人计算机操作系统 -> Android 操作系统。

操作系统分为三种基本类型(按照用户界面的使用环境和功能特征的不同)，即批处理系统、分时系统和实时系统。  
随着计算机体系结构的发展，又出现了许多类型的操作系统，它们是个人操作系统、网络操作系统、分布式操作系统和嵌人式操作系统。

2021年11月Statcounter的调查{" "}

## 操作系统设计

在操作系统设计的过程中主要困难有：设计复杂程度高、正确性难以保证和研制周期长等问题。  
操作系统的设计过程：  
（1）功能设计。指的是根据系统的设计目标和使用要求，确定所设计的操作系统应具备哪些功能以及操作系统的类型。<br/>
（2）算法设计。指的是根据计算机的性能和操作系统的功能，来选择和设计满足系统功能的算法和策略，并分析和估算其效能。<br/>
（3）结构设计。指的是按照系统的功能和特性要求，选择合适的结构，使用相应结构设计方法将系统逐步地分解、抽象和综合，使操作系统结构清晰、简明、可靠、易读、易修改，而且使用方便，适应性强。<br/>

**操作系统的设计目标：**  
一个高质量的操作系统应具有**可靠性**（正确性和健壮性）、**高效性**、**易维护性**（易读性、易扩充性、易剪裁性、易修改性）、**可移植性**、**安全性**和**简明性**等特征。

软件结构研究的对象是组成软件的各部分划分的原则以及它们之间的关系，即软件的构成法则和组合方法。

**操作系统结构研究的目标:**  
（1）系统模块化。<br />
（2）模块标准化。<br />
（3）通信规范化。<br />

**操作系统的结构：**  
（1）整体式结构。  
我们把这种操作系统的结构称之为模块组合结构。它的主要优点
是，结构紧密，接口简单直接，系统效率较高。  
模块组合法（或称无序模块法、模块接口法等）的缺点有：  
第一，模块间转接随便，各模块互相牵连，独立性差，系统结构不清晰。  
第二，数据基本上作为全程量处理，系统内所有模块的任一程序均可对其进行存取和修改，从而造成了各模块间有着更为隐蔽的关系。  
第三，由于模块组合结构常以大型表格为中心，为保证数据完整性，往往采用全局封中断办法，从而限制了系统的并发性。系统中实际存在的并发生也未能抽象出明确的概念，缺乏规格的描述方法。所以，这种结构的可适应性比较差。

（2）层次式结构。  
层次式结构就是把操作系统的所有功能模块，按功能流图的调用次 序，分别将这些模块排列成若干层，各层之间的模块只能是单向依赖或单向调用（如只允许上
层或外层模块调用下层或内层模块）关系。  
（3）微内核（客户／服务器）结构  
采用客户／服务器结构模式的典型操作系统有卡内基·梅隆大学研制的 Mach 操作系统和 Windows NT 的早期版本。这种模式的优点在 于，它将系统分成若干个小的并且自包含的分支（服务进程），每个分支运行在独立的用户
进程中，相互之间通过规范一致的方式接收发送信息而联系起来。这种体系结构的缺陷 主要是对于效率的考虑。
